雖然我得目的是要學習Python但是就像說你要寫一個影像辨識軟體,但是你不懂電腦是如何處理影像的
你只是會用別人的API而已,要寫網路爬蟲你也必須要清楚網路的相關知識才行,不然遇到問題你就會卡在那了,聰明的你可能就會上網來發問了,但是工程師必須要會解決問題
上面的圖是自己畫的比較醜,請見諒
我們可以使用Chrome與FireFox等瀏覽器當作我們的Client端,而當我們要去瀏覽網站時會透過
HTTP協定或HTTPS協定去跟網站請求網頁資訊,那我們要跟人家請求資源時是不是要告訴人家,
1.要回傳什麼樣的資訊
2.要用什麼樣的方式跟我溝通
3.我的位址在哪裡,你要怎麼回傳訊息給我
4.我要用什麼樣的方式呈現資訊
我們來看一個Request的Headers
上圖是一個Request的實例,我們可以使用開發者工具來查看Request,Response的Headers
HTTP/HTTPS請求的資源透過URI(Uniform Resource Identifiers,URI)來做辨識
更清楚的可以參考維基百科(https://zh.wikipedia.org/wiki/%E7%BB%9F%E4%B8%80%E8%B5%84%E6%BA%90%E6%A0%87%E5%BF%97%E7%AC%A6 )
敘述
scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
ex:
http://www.cwb.gov.tw/V7/forecast/week/week.htm
scheme:http
host:www.cwb.gov.tw
port:80(http協定)
path:/V7/forecast/week/week.htm
上面是我們能從此URL看出來的對應訊息~
2xx系列(成功):
2XX系列為伺服器成功接收到用戶的請求,以及接受用戶的請求
狀態碼 | 敘述 |
---|---|
200 | 用戶端要求成功,狀態OK |
201 | 已建立 |
202 | 已接受 |
203 | 非授權資訊 |
4xx系列(用戶端錯誤):
4XX系列為用戶端權限,或程式中發生的錯誤有關
狀態碼 | 敘述 |
---|---|
400 | 錯誤的要求(Bad Request) |
401 | Unauthorized |
403 | Forbidden(常見的也是權限問題) |
404 | 找不到頁面或資源(Not Found) |
5xx系列(伺服器錯誤):
5xx系列為伺服器端出錯,
狀態碼 | 敘述 |
---|---|
500 | 內部伺服器發生錯誤(常見有資料庫連線失敗等) |
504 | Gateway Timeout(預設閘道愈時) |
下一篇利用Python Request模組像伺服器做請求